# coding:utf-8
# @Author: Mercur1o
# @Software: PyCharm
# @File : exerc3.py
# @Time: 2024/3/19 10:31


# 定义一个函数来检查ID是否有效
def check_id(id):
    # ID长度不能超过8位，并且只能包含数字、字母和下划线
    if len(id) <= 8:
        if id.replace('_', '').isalnum():  # 移除下划线后检查是否只包含数字和字母
            # isalnum()它会检查字符串是否只包含字母（a-z, A-Z）和数字（0-9）。如果字符串中仅包含这些字符返回true
            return True
    return False


# 定义一个函数来检查电子邮件是否有效
def check_email(email):
    # 检查电子邮件是否包含'@'和'.'，并且'@'在'.'之前
    if '@' in email and '.' in email:
        if email.index('@') < email.index('.'):
            return True
    return False


# 定义一个函数来检查身份证号是否有效
def check_id_number(id_number):
    # 身份证号通常为18位，前17位为数字，最后一位可以是数字或者'X'
    if len(id_number) == 18:
        if id_number[:-1].isdigit() and id_number[-1] in '0123456789X':
            #isdigit()方法来判断这部分内容是否全部由数字组成。
            return True
    return False


# 定义一个函数来检查姓名是否有效
def check_name(name):
    # 检查姓名是否只包含中文，并且长度不超过4个字符
    if len(name) <= 4:
        for character in name:
            if '\u4e00' <= character <= '\u9fff':
                #\u4e00是中文字符集的起始码位（第一个汉字“一”的Unicode编码）
                #\u9fff则是中文字符集的基本结束码位（最后一个汉字的Unicode编码）
                return True
    return False


# 获取用户输入ID
user_id = input("请输入ID（不超过8位，只能由数字、字母、下划线组成）: ")
# 验证ID
if check_id(user_id):
    # 获取用户输入EMAIL地址
    email = input("请输入EMAIL地址: ")
    # 验证EMAIL地址
    if check_email(email):
        # 获取用户输入身份证号
        id_number = input("请输入身份证号: ")
        # 验证身份证号
        if check_id_number(id_number):
            # 获取用户输入姓名
            name = input("请输入姓名（只能中文且不超过4位）: ")
            # 验证姓名
            if check_name(name):
                # 验证成功，提取性别信息（身份证号的第17位）
                gender_digit = id_number[16]
                gender = "男" if int(gender_digit) % 2 == 1 else "女"

                # 输出用户所有信息，包括性别
                print("用户信息如下：")
                print(f"ID: {user_id}")
                print(f"EMAIL地址: {email}")
                print(f"身份证号: {id_number}")
                print(f"姓名: {name}")
                print(f"性别: {gender}")
            else:
                print("输入的姓名不符合要求，请确保姓名是中文且不超过4个字符。")
        else:
            print("输入的身份证号不符合要求，请输入正确的18位身份证号。")
    else:
        print("输入的EMAIL地址不符合要求，请确保包含'@'和'.'，并且'@'在'.'之前。")
else:
    print("输入的ID不符合要求，请确保ID不超过8位，并且只能由数字、字母、下划线组成。")